<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><link rel="stylesheet" type="text/css" href="style.css" /><script type="text/javascript" src="highlight.js"></script></head><body><pre><span class="hs-pragma">{-# LANGUAGE Trustworthy #-}</span><span>
</span><span id="line-2"></span><span class="hs-pragma">{-# LANGUAGE NoImplicitPrelude #-}</span><span>
</span><span id="line-3"></span><span>
</span><span id="line-4"></span><span class="hs-comment">-----------------------------------------------------------------------------</span><span>
</span><span id="line-5"></span><span class="hs-comment">-- |</span><span>
</span><span id="line-6"></span><span class="hs-comment">-- Module      :  Data.Int</span><span>
</span><span id="line-7"></span><span class="hs-comment">-- Copyright   :  (c) The University of Glasgow 2001</span><span>
</span><span id="line-8"></span><span class="hs-comment">-- License     :  BSD-style (see the file libraries/base/LICENSE)</span><span>
</span><span id="line-9"></span><span class="hs-comment">-- </span><span>
</span><span id="line-10"></span><span class="hs-comment">-- Maintainer  :  libraries@haskell.org</span><span>
</span><span id="line-11"></span><span class="hs-comment">-- Stability   :  experimental</span><span>
</span><span id="line-12"></span><span class="hs-comment">-- Portability :  portable</span><span>
</span><span id="line-13"></span><span class="hs-comment">--</span><span>
</span><span id="line-14"></span><span class="hs-comment">-- Signed integer types</span><span>
</span><span id="line-15"></span><span class="hs-comment">--</span><span>
</span><span id="line-16"></span><span class="hs-comment">-----------------------------------------------------------------------------</span><span>
</span><span id="line-17"></span><span>
</span><span id="line-18"></span><span class="hs-keyword">module</span><span> </span><span class="hs-identifier">Data.Int</span><span>
</span><span id="line-19"></span><span>  </span><span class="hs-special">(</span><span> </span><span>
</span><span id="line-20"></span><span>        </span><span class="annot"><span class="hs-comment">-- * Signed integer types</span></span><span>
</span><span id="line-21"></span><span>        </span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#Int"><span class="hs-identifier">Int</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-22"></span><span>        </span><span class="annot"><a href="GHC.Int.html#Int8"><span class="hs-identifier">Int8</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Int.html#Int16"><span class="hs-identifier">Int16</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Int.html#Int32"><span class="hs-identifier">Int32</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Int.html#Int64"><span class="hs-identifier">Int64</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-23"></span><span>
</span><span id="line-24"></span><span>        </span><span class="annot"><span class="hs-comment">-- * Notes</span></span><span>
</span><span id="line-25"></span><span>
</span><span id="line-26"></span><span>        </span><span class="annot"><span class="hs-comment">-- $notes</span></span><span>
</span><span id="line-27"></span><span>        </span><span class="hs-special">)</span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-28"></span><span>
</span><span id="line-29"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Base.html"><span class="hs-identifier">GHC.Base</span></a></span><span> </span><span class="hs-special">(</span><span> </span><span class="annot"><a href="../../ghc-prim/src/GHC.Types.html#Int"><span class="hs-identifier">Int</span></a></span><span> </span><span class="hs-special">)</span><span>
</span><span id="line-30"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="GHC.Int.html"><span class="hs-identifier">GHC.Int</span></a></span><span>  </span><span class="hs-special">(</span><span> </span><span class="annot"><a href="GHC.Int.html#Int8"><span class="hs-identifier">Int8</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Int.html#Int16"><span class="hs-identifier">Int16</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Int.html#Int32"><span class="hs-identifier">Int32</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="GHC.Int.html#Int64"><span class="hs-identifier">Int64</span></a></span><span> </span><span class="hs-special">)</span><span>
</span><span id="line-31"></span><span>
</span><span id="line-32"></span><span class="hs-comment">{- $notes

* All arithmetic is performed modulo 2^n, where @n@ is the number of
  bits in the type.

* For coercing between any two integer types, use 'Prelude.fromIntegral',
  which is specialized for all the common cases so should be fast
  enough.  Coercing word types (see &quot;Data.Word&quot;) to and from integer
  types preserves representation, not sign.

* The rules that hold for 'Prelude.Enum' instances over a
  bounded type such as 'Int' (see the section of the
  Haskell report dealing with arithmetic sequences) also hold for the
  'Prelude.Enum' instances over the various
  'Int' types defined here.

* Right and left shifts by amounts greater than or equal to the width
  of the type result in either zero or -1, depending on the sign of
  the value being shifted.  This is contrary to the behaviour in C,
  which is undefined; a common interpretation is to truncate the shift
  count to the width of the type, for example @1 \&lt;\&lt; 32
  == 1@ in some C implementations.
-}</span><span>
</span><span id="line-55"></span><span>
</span><span id="line-56"></span></pre></body></html>